.\"
.\"     @(#)configd.8
.\"
.Dd June 18, 2009
.Dt CONFIGD 8
.Os "Mac OS X"
.Sh NAME
.Nm configd
.Nd System Configuration Daemon
.Sh SYNOPSIS
.Nm
.Op Fl bdv
.Op Fl B Ar bundleID
.Op Fl V Ar bundleID
.Op Fl t Ar bundle-path
.Sh DESCRIPTION
The
.Nm
daemon
is responsible for many configuration aspects of the local system.
.Nm
maintains data reflecting the desired and current state of the system,
provides notifications to applications when this data changes,
and hosts a number of configuration agents in the form of loadable
bundles.
.Pp
Each configuration agent is responsible for a well-defined aspect
of configuration management. The agents look to one or more input
sources (preferences, low-level kernel events,
.Nm
notifications, etc) and, through
a set of policy modules, interacts with the system to establish
the desired operational configuration.
.Pp
Access to the data maintained by
.Nm
is via the SystemConfiguration.framework SCDynamicStore APIs.
.Sh OPTIONS
.Pp
The command line options are as follows:
.Bl -tag -width xx
.It Fl b
Don't actually load any bundles.
.It Fl B Ar bundleID
Prevents the loading of the bundle with the specified
.Ar bundleID .
.It Fl d
Run
.Nm
in the foreground without forking.  This is useful for debugging.
.It Fl v
Puts
.Nm
into verbose mode.  Displays debugging information about
bundles as they are being loaded.
.It Fl V Ar bundleID
Turns verbose mode on for the bundle with the specified
.Ar bundleID .
.It Fl t Ar bundle-path
Loads only the bundle specified by
.Ar bundle-path .
.El
.Sh BUNDLES
At the present time, the majority of the configuration agents (or bundles) hosted by
.Nm
are used to establish and maintain the network configuration.
These agents include:
.Pp
.Ss KernelEventMonitor
This bundle is responsible for monitoring kernel events and conveying changes to the network state (e.g. link status) to other configuration agents and interested applications.
.Ss InterfaceNamer
This bundle provides a name to each of the system's network interfaces.  The bundle queries the
IOKit Registry for a list of network devices attached to the system and gives them BSD style names such as
.Qq en0 .
.Ss IPConfiguration
This agent is responsible for establishing and maintaining IPv4 addresses on the system.  These addresses may be manually specified in the network preferences or acquired using DHCP (or BOOTP).
.Ss IP6Configuration
This agent is responsible for establishing and maintaining IPv6 addresses on the system.
.Ss IPMonitor
This agent is responsible for establishing and maintaining the primary network service, the default route, the active DNS configuration, and the active network proxies on the system.
.Ss LinkConfiguration
This agent is responsible for establishing and maintaining the media type, media options, and MTU for ethernet interfaces.
.Ss PreferencesMonitor
This agent is responsible for conveying the network configuration preferences specified by the administrator to the various configuration agents (IPv4, IPv6, ...).
.Ss PPPController
This agent is responsible for establishing and maintaining PPP connections on the system.
.Sh FILES
.Bl -tag -width xx
.It Pa /System/Library/SystemConfiguration/
Directory of
.Nm
bundles
.It Pa /Library/Preferences/SystemConfiguration/
Default directory for system configuration persistent store files.
.Bl -tag -width .../VirtualNetworkInterfaces.plist
.It Pa .../preferences.plist
System configuration
.It Pa .../NetworkInterfaces.plist
Network interface --> BSD interface mappings
.It Pa .../VirtualNetworkInterfaces.plist
Virtual network interface (VLAN) configuration
.El
.El
.Sh ERRORS
Log messages generated by
.Nm
and any configuration agents will are
sent to the system log daemon by
.Xr syslog 3 .
The syslog facility used is LOG_DAEMON.
If the
.Fl d
option is specified, log messages with written to stdout (or stderr if
the priority is greater than LOG_NOTICE).
.Sh SIGNALS
.Nm
was designed to run without any intervention but if you insist on sending a signal to the daemon then the following are available:
.Bl -tag -width SIGTERM
.It Dv SIGHUP
This signal, typically used to tell a daemon to reload its configuration, is ignored (there is no configuration).
.It Dv SIGTERM
This signal initiates a
.Qq graceful
shutdown of the daemon.
.El
.Sh SEE ALSO
./".Xr SystemConfiguration.framework 3 ,
.Xr scutil 8 ,
.Xr scselect 8
./".Xr launchd 8
.Sh HISTORY
The
.Nm
daemon appeared in Mac OS X Public Beta.
.Sh NOTES
Unless started with the
.Fl d
option,
.Nm
will register with
.Xr launchd 8
such that the daemon will be restarted in the event of a crash.
This registration will be removed during
.Qq graceful
shutdowns of the daemon.
.Pp
This daemon and its current behavior may change without notice.  Do not rely
on its existence or its behavior.  Consider it an unsupported command.
